new_element=document.createElement("script");
new_element.setAttribute("type","text/javascript");
new_element.setAttribute("src","../../common/userRole.js");
document.body.appendChild(new_element);
$(function() {
	init();
});
//页面初始化调用方法
function init() {
	// 1.初始化Table
	var userTable = new TableInit();
	userTable.Init();
}

var TableInit = function() {
	var oTableInit = new Object();
	// 初始化Table
	oTableInit.Init = function() {
		$("#userTables").bootstrapTable({
			url : '../../../user/getUserMessage', // 请求后台的URL（*）
			method : "POST",
			contentType : "application/x-www-form-urlencoded",
			toolbar : '#toolbar',
			striped : true, // 是否显示行间隔色
			cache : false, // 是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
			pagination : true, // 是否显示分页（*）
			sortable : true, // 是否启用排序
			checkboxHeader : false,// 是否显示表头的全选
			queryParamsType : "undefined", // 默认limit
			queryParams : oTableInit.queryParams,// 传递参数（*）
			sidePagination : "server", // 分页方式：client客户端分页，server服务端分页（*）
			pageNumber : 1, // 初始化加载第一页，默认第一页
			pageSize : 10, // 每页的记录行数（*）
			pageList : [ 10, 25, 50, 100 ], // 可供选择的每页的行数（*）
			sortName : "CREATE_TIME",
			sortOrder : "DESC",
			search : false, // 是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
			strictSearch : true,
			showColumns : true, // 是否显示所有的列
			minimumCountColumns : 2, // 最少允许的列数
			clickToSelect : true, // 是否启用点击选中行
			height : 500, // 行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
			uniqueId : "ID", // 每一行的唯一标识，一般为主键列
			showToggle : true, // 是否显示详细视图和列表视图的切换按钮
			cardView : false, // 是否显示详细视图
			detailView : false,
			singleSelect:true,
			onLoadSuccess:function(){
	            $('.bootstrap-table tr td').each(function () {
	                $(this).attr("title", $(this).text());
	                $(this).css("cursor", 'pointer');
	            });
	        },
			responseHandler : function(res) {
				return getTableData(res);
			}, // 是否显示父子表
			columns : [ {
				checkbox : true
			}, {
				field : 'DEP_NAME',
				title : '单位名称'
			}, {
				field : 'DEP_ID',
				visible : false
			}, {
				field : 'ID',
				visible : false
			}, {
				field : 'LOGIN_NAME',
				title : '登录名',
			}, {
				field : 'USER_NAME',
				title : '用户名称',
                sortable: true,//是否可排序
                order: "DESC"//默认排序方式
			}, {
				field : 'ROLE_NAME',
				title : '用户角色'
			}, {
				field : 'ROLE_ID',
				visible : false
			}, {
				field : 'ROLE_CODE',
				visible : false
			}, {
				field : 'ROLE_TYPE',
				visible : false
			} ]
		});
	};
	// 得到查询的参数
	oTableInit.queryParams = function(params) {
		var temp = { // 这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的pageSize,
			pageSize : params.pageSize, // 页面大小
			pageNumber : params.pageNumber, // 页码
			sortName : params.sortName,
			sortOrder : params.sortOrder,
			name : $('#userNameSearch').val(),
		   loginName : $('#loginNameSearch').val(),
		   roleName : $('#roleNameSearch').val()
		};
		return temp;
	};
	return oTableInit;
};

var ButtonInit = function() {
	var oInit = new Object();
	oInit.Init = function() {};
	return oInit;
};
function getSelects(comboContainer, url, value) {
	// comboContainer为combobox所在的容器
	// value:默认选中值
	$.ajax({
		url : url,
		type : "GET",
		success : function(obj) {
			if(obj.flag==0){
				var resultc = obj.content;
				/* 创建option并插入数据 */
				if (comboContainer.attr("id") == "roleName") {
					for (var i = 0; i < resultc.length; i++) {
						comboContainer.append("<option value='" + resultc[i].roleID
								+ "'>" + resultc[i].roleName + "</option>");
					}
				} else if (comboContainer.attr("id") == "depName") {
					for (var i = 0; i < resultc.length; i++) {
						comboContainer.append("<option value='" + resultc[i].depID
								+ "'>" + resultc[i].depName + "</option>");
					}
				}
				if (value) {
					comboContainer.val(value);
				}
			}else{
				danger(obj.errorInfo);
			}
		},
		error : function(error) {
			danger("连接服务器异常");
		}
	});
};
// 弹出新增用户页面
function add() {
	BootstrapDialog.show({
		title : '新增用户信息',
		draggable: true,
		closable: false,
		message : $("<form class='form-inline' style='height:250px'></form>")
				.load('userAdd.html'),
		onshown : function() {
			// 初始化新增页面组织机构的值
			getSelects($("#roleName"), "../../../role/getRoleIdName", "");
			getSelects($("#depName"), "../../../department/getDepartmentName","");
		},
		buttons : [ {
			icon : 'glyphicon glyphicon-check',
			label : '确定',
			cssClass : 'btn-primary',
			autospin : true,
			action : function(dialogRef) {
				var name = $("#name").val().trim();
				var loginName = $("#loginName").val().trim();
				var roleName = $("#roleName").val().trim();
				var depName = $("#depName").val().trim();
				addUser(name, loginName, roleName, depName);
			}
		}, {
			label : '取消',
			action : function(dialogRef) {
				dialogRef.close();
			}
		} ]
	});
}
// 发送新增用户信息
function addUser(name, loginName, roleName, depName) {
	var ok = true;
	if (name == "" || loginName == "") {
		ok = false;
		var content = "用户名和登录名不能为空!";
		info(content);
	}
	// 发送ajax请求
	if (ok) {
		$.ajax({
			url : "../../../user/addUser",
			type : "post",
			data : {
				"name" : name,
				"loginName" : loginName,
				"roleID" : roleName,
				"depID" : depName
			},
			dataType : "json",
			success : function(data) {
				if (data.flag == 0) {
					success(data.content);
					queryBytableId("userTables");
				} else {
					warning(data.errorInfo);
				}
			},
			error : function() {
				danger("用户添加失败!");
			}
		});
	}

}
// 弹出编辑角色页面
function edit() {
	var selectUsers = $("#userTables").bootstrapTable('getSelections');
	if (selectUsers.length == 0) {
		var content = "请选择要编辑的用户!";
		info(content);
	} else{
		var userID = selectUsers[0].ID;
		var name = selectUsers[0].USER_NAME;
		var loginName = selectUsers[0].LOGIN_NAME;
		var roleID = selectUsers[0].ROLE_ID;
		var depID = selectUsers[0].DEP_ID;
		var roleCode=selectUsers[0].ROLE_CODE;
		var ok=false;
		if(roleLoad()=="0"){
			if(roleCode!="0"){
				ok=true;
			}else{
				var content = "超级管理员不能修改!";
				info(content);
			}
		}else if(roleLoad()=="1"||roleLoad()=="2"){
			if(roleCode!="0"){
				if(roleCode!="1"){
					ok=true;
				}else{
					var content = "系统管理员不能修改!";
					info(content);
				}
			}else{
				var content = "超级管理员不能修改!";
				info(content);
			}
		}
		if(ok){
			BootstrapDialog.show({
				title : '修改用户信息',
				draggable: true,
				closable: false,
				message : $(
				"<form class='form-inline' style='height:250px'></form>")
				.load('userAdd.html'),
				onshown : function() {
					$("#loginName").attr("disabled", true);
					$("#userID").val(userID);
					$("#loginName").val(loginName);
					$("#name").val(name);
					getSelects($("#roleName"), "../../../role/getRoleIdName",roleID);
					getSelects($("#depName"),"../../../department/getDepartmentName", depID);
				},
				buttons : [ {
					icon : 'glyphicon glyphicon-check',
					label : '确定',
					cssClass : 'btn-primary',
					autospin : true,
					action : function(dialogRef) {
						var userID = $("#userID").val();
						var name = $("#name").val().trim();
						var loginName = $("#loginName").val().trim();
						var roleID = $("#roleName").val().trim();
						var depID = $("#depName").val().trim();
						
						editUser(userID, name, loginName, roleID, depID);
					}
				}, {
					label : '取消',
					action : function(dialogRef) {
						dialogRef.close();
					}
				} ]
			});
		}		
	}
}
function editUser(userID, name, loginName, roleID, depID) {
	var ok = true;
	if (name == "" || loginName == "") {
		ok = false;
		var content = "用户名或登录名不能为空!";
		info(content);
	}
	// 发送ajax请求
	if (ok) {
		$.ajax({
			url : "../../../user/updateUserMessage",
			type : "post",
			data : {
				"userID" : userID,
				"name" : name,
				"loginName" : loginName,
				"roleID" : roleID,
				"depID" : depID
			},
			dataType : "json",
			success : function(data) {
				if (data.flag == 0) {
					success(data.content);
					queryBytableId("userTables");
				} else {
					warning(data.errorInfo);
				}
			},
			error : function() {
				var content = "用户修改失败!";
				danger(content);
			}
		});
	}

}

// 删除用户
function deleteUser() {
	var user = parent.$("#user").html();
	var selectUsers = $("#userTables").bootstrapTable('getSelections');
	if (selectUsers.length == 0) {
		var content = "请选择要删除的用户!";
		info(content);
	} else if (user == selectUsers[0].LOGIN_NAME) {
		var content = "不能删除自己的用户信息!";
		info(content);
	} else {
		var userID = selectUsers[0].ID;
		//校验删除权限
		$.ajax({
			url : "../../../user/deleteUserValidate",
			type : "post",
			data : {
				"userID" : userID
			},
			dataType : "json",
			success : function(data) {
				if (data.content == "success") {
					BootstrapDialog.show({
						title : '提示',
						message :"您确定要删除吗?",
						buttons : [{
							icon : 'glyphicon glyphicon-check',
							label : '确定',
							cssClass : 'btn-primary',
							autospin : true,
							action:function(dialogRef){
								dialogRef.close();
								$.ajax({
									url : "../../../user/deleteUser",
									type : "post",
									data : {
										"userID" : userID
									},
									dataType : "json",
									success : function(data) {
										if (data.flag == 0) {
											success(data.content);
											queryBytableId("userTables");
										} else {
											danger(data.errorInfo);
										}
									},
									error : function() {
										danger("用户删除失败!");
									}
								});
							}
						},{
							label : '取消',
							action : function(dialogRef) {
								dialogRef.close();
							}
						}]
					});
				}else{
					info(data.content);
				}
			}
		});
		
	}
}
function resetPassword() {
	var selectUsers = $("#userTables").bootstrapTable('getSelections');
	if (selectUsers.length == 0) {
		var content = "请选择要重置密码的用户!";
		info(content);
	}else{
		if(roleLoad()=="0"){
			var userID = selectUsers[0].ID;
			resetPasswordNew(userID);
		}else if(roleLoad()=="0"){
			var userID = selectUsers[0].ID;
			var roleCode = selectUsers[0].ROLE_CODE;
			if(roleCode=="0"){
				var content = "你不具备修改该用户的权限!";
				info(content);
			}else{
				resetPasswordNew(userID);
			}
		}else{
			var userID = selectUsers[0].ID;
			var roleCode = selectUsers[0].ROLE_CODE;
			if(roleCode=="0"){
				var content = "你不具备修改该用户的权限!";
				info(content);
			}else if(roleCode=="1"){
				var content = "你不具备修改该用户的权限!";
				info(content);
			}else{
				resetPasswordNew(userID);
			}
		}
	}
}
//重置密码
function resetPasswordNew(userID){
	BootstrapDialog.show({
		title : '提示',
		message :"您确定要重置该用户密码吗?",
		draggable: true,
		closable: false,
		buttons : [{
			icon : 'glyphicon glyphicon-check',
			label : '确定',
			cssClass : 'btn-primary',
			autospin : true,
			action:function(dialogRef){
				dialogRef.close();
				$.ajax({
					url : "../../../user/resetUserPassword",
					type : "post",
					data : {
						"userID" : userID
					},
					dataType : "json",
					success : function(data) {
						if (data.flag == 0) {
							success(data.content);
							queryBytableId("userTables");
						}else{
							danger(data.errorInfo);
						}
					},
					error : function() {
						danger("用户重置密码失败!");
					}
				});
			}
		},{
			label : '取消',
			action : function(dialogRef) {
				dialogRef.close();
			}
		}]
	});
}
